const pr1 = new Promise((resolve, reject) => {
  console.log(1)
  setTimeout(() => {
    resolve(3)
  },1000)

})
const pr2 = new Promise((resolve, reject) => {
  console.log(2)
  resolve(4)
})
function fn3() {
  pr2.then(res => {
    console.log(res)
  })
}
function fn1() {
  return pr1.then(res => {
    console.log(res)
  })
}
async function fn2() {
  const rs = await fn1()
  fn3()
}
const f4 = fn2()
f4.then(() => {
  console.log(5)
})
// async 表示函数里有异步操作，await 表示紧跟在后面的表达式需要等待结果。

//await 等待 fn1 返回结果，如果不加 return，函数默认返回 undefined，继续执行下面的函数，
//如果 return promise 则需要等待 promise 执行完毕再去执行后面的fn3